.NET Framework Class Library |
ParallelEnumerable..::.Aggregate<(Of <(TSource, TAccumulate, TResult>)>) Method (ParallelQuery<(Of <(TSource>)>), Func<(Of <(TAccumulate>)>), Func<(Of <(TAccumulate, TSource, TAccumulate>)>), Func<(Of <(TAccumulate, TAccumulate, TAccumulate>)>), Func<(Of <(TAccumulate, TResult>)>)) |
ParallelEnumerable Class See Also Send Feedback |
Applies in parallel an accumulator function over a sequence. This overload is not
available in the sequential implementation.
Namespace:
System.Linq
Assembly:
System.Threading (in System.Threading.dll)
Syntax
Visual Basic (Declaration) |
---|
Public Shared Function Aggregate(Of TSource, TAccumulate, TResult) ( _ source As ParallelQuery(Of TSource), _ seedFactory As Func(Of TAccumulate), _ updateAccumulatorFunc As Func(Of TAccumulate, TSource, TAccumulate), _ combineAccumulatorsFunc As Func(Of TAccumulate, TAccumulate, TAccumulate), _ resultSelector As Func(Of TAccumulate, TResult) _ ) As TResult |
C# |
---|
public static TResult Aggregate<TSource, TAccumulate, TResult>( ParallelQuery<TSource> source, Func<TAccumulate> seedFactory, Func<TAccumulate, TSource, TAccumulate> updateAccumulatorFunc, Func<TAccumulate, TAccumulate, TAccumulate> combineAccumulatorsFunc, Func<TAccumulate, TResult> resultSelector ) |
Parameters
- source
- Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence to aggregate over.
- seedFactory
- Type: System..::.Func<(Of <(TAccumulate>)>)
A function that returns the initial accumulator value.
- updateAccumulatorFunc
- Type: System..::.Func<(Of <(TAccumulate, TSource, TAccumulate>)>)
An accumulator function to be invoked on each element in a partition.
- combineAccumulatorsFunc
- Type: System..::.Func<(Of <(TAccumulate, TAccumulate, TAccumulate>)>)
An accumulator function to be invoked on the yielded element from each partition.
- resultSelector
- Type: System..::.Func<(Of <(TAccumulate, TResult>)>)
A function to transform the final accumulator value into the result value.
Type Parameters
- TSource
- The type of the elements of source.
- TAccumulate
- The type of the accumulator value.
- TResult
- The type of the resulting value.
Return Value
The transformed final accumulator value.Remarks
This overload is specific to parallelized queries. A parallelized query may partition the data source sequence
into several sub-sequences (partitions). The updateAccumulatorFunc is invoked
on each element within partitions. Each partition then yields a single accumulated result.
The combineAccumulatorsFunc
is then invoked on the results of each partition to yield a single element. This element is then
transformed by the resultSelector function.
Exceptions
Exception | Condition |
---|---|
System..::.ArgumentNullException | source or seedFactory or updateAccumulatorFunc or combineAccumulatorsFunc or resultSelector is a null reference (Nothing in Visual Basic). |
System..::.AggregateException | One or more exceptions occurred during the evaluation of the query. |
System..::.OperationCanceledException | The query was canceled. |